# 文件打开模式

"""
基础模式：w r x a
    w 模式  write 写入模式
        1，文件不存在，则创建这个文件
        2，文件如果存在，则打开这个文件，并清空文件内容
        3，文件打开后，文件的指针在文件的最前面

    r 模式  read 读取模式
        1，如果文件不存在，则会报错
        2，如果文件存在，则打开文件
        3，文件指针在文件的最前面

    x 模式 xor 异或模式
        1，文件不存在，则创建这个文件
        2，文件已存在，则报错（防止覆盖）
        3，文件的指针在文件的最前面

    a 模式 append 追加模式
        1，文件不存在，则创建文件
        2，文件如果存在，则打开文件， （与w模式区别在于，a模式不会清空文件）
        3，文件指针在当前文件的最后

扩展模式
    b b模式 bytes 二进制
    + +模式 plus 增强模式 (可读可写)

文件操作模式组合
    w r x a
    wb rb xb ab
    w+ r+ x+ a+
    wb+ rb+ xb+ ab+
"""

# fq = open('./1.txt', 'r', encoding='utf-8')
#
# res = fq.read()
# # hello word
# print(res)
#
# fq.close()

# fq = open('./1.txt', 'a+', encoding='utf-8')
# fq.write('\n你好')
# # hello word
# # 你好
# fq.close()

# 文件操作的高级写法
'''
with open(文件路径, 打开模式) as 变量:
    变量.操作()

优势: 不需要单独写文件的关闭函数
'''

# w+ 即可读游客写 w模式特点是打开并清空文件
# r+ 可读可写
# a+ 追加写，并且可读，指针在最后面，读取不到文件原有内容
# x+ 异或
with open('./1.txt', 'a+', encoding='utf-8') as fp:
    fp.write('BB')
    # 设置指针位置
    fp.seek(0) # 设置当前指针位置，seek(0):最开始的位置

